Modern circuit design has given rise to a specialized field often referred to as electronic design automation in which computers and computer aided design (CAD) techniques are used to automate the integrated circuit (IC) design process. An IC design process typically begins with an engineer specifying the input/output signals, functionality and performance characteristics of a hardware circuit to be fabricated. These characteristics may be captured in a high level hardware description language (HDL) model, which represents a circuit design at a higher level of abstraction, thereby reducing the number of individual design objects that a designer needs to consider individually by perhaps orders of magnitude.
The continuous advances in integrated circuit device manufacturing technology allow building smaller and more complex devices from transistors that are smaller in size, and, thus, more susceptible to defects, both permanent and intermittent. The reduction of cost for the device, per transistor, enable the creation of increasingly complex distributed systems made of many interacting devices. Examples include the cellular telephone system and the deployment of global positioning system (GPS) devices in automobiles for navigation. This paired challenge of building complex interacting systems of heterogeneous devices (cell phones) from components that may be unreliable (extremely small transistors) is a new and expanding challenge.